# 格式化输出用于输出的字符串中需要填充变量而非常量时
# 需求：输出：我的名字是xx，我的年龄是xx，我的身高是xxm。
name = '小明'
age = 22
height = 1.75
print('我的名字是%s，我的年龄是%d，我的身高是%.1fm。' % (name, age, height))  # 其中%.nf代表以小数点后几位显示
# 需求：输出：我的学号是000001。
studentNo = 1
print('我的学号是%06d。' % studentNo)  # 其中%0nd代表以0开头的n位整数显示。
# 需求：输出：我的本次考试及格率为90%。
pass_num = 90
print('我的本次考试及格率为%d%%' % pass_num)  # 输出的字符串中只需要填充一个变量则不用括号，整型数据想要显示%，则要连续书写两个%%。
# 需求：使用字符串格式化输出：我的名字是xx，我的年龄是xx，我的身高是xxm，我的学号是000001，我的本次考试及格率为90%。
print(f'我的名字是{name}，我的年龄是{age}，我的身高是{height:.2f}m，我的学号是{studentNo:06d}，\n我的本次考试及格率为{pass_num}%。')
# 上句中，想要改变显示形式可以用冒号(百分号的显示此时只能手动添加)，想要换行输出可以在换行起始处加上\n，实际上，
# 字符串格式化更简单，它依赖的是字符串无限制转型的强大能力。
print('我的名字是{0}，我的年龄是{1}，我的身高是{2}，我的学号是{3}'.format(name, age, height, studentNo))
print('我的名字是{1}，我的年龄是{3}，我的身高是{0}，我的学号是{2}'.format(name, age, height, studentNo))
print('我的名字是{name}，我的年龄是{age}，我的身高是{height}，我的学号是{studentNo}'
      .format(name=name, age=age, height=height, studentNo=studentNo))
